<?php

namespace App\Http\Controllers\Home;

use Illuminate\Http\Request;

use App\Http\Requests;
use App\Http\Controllers\Controller;
use DB;
use Storage;

class ImageController extends Controller
{
    /**
     * Display a listing of the resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function index()
    {
        //
        $imgs = DB::table('image')->get();
        return view('home.image_index')->with('imgs',$imgs);
    }

    /**
     * Show the form for creating a new resource.
     *
     * @return \Illuminate\Http\Response
     */
    public function create()
    {
//        //普通文件上传
//        return view('home.image_add');

        //ajax文件上传
        return view('home.ajax_image_add');
    }

    /**
     * Store a newly created resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @return \Illuminate\Http\Response
     */
    public function store(Request $request)
    {

//      dd($request->file("img"));

        /**
         * 单图片上传
         * 1 表单处  <input type="file" name="img"/>
         */

        /*$img = $request->file('img');
        if($img->isValid()) {
            $ext = $img->getClientOriginalExtension(); //获取上传文件名的后缀名
            $path = public_path('upload/images/');
            $name = "origin_" . time() . rand(10, 100) . '.' . $ext;
            if ($img->move($path, $name)) {
                $url = '/upload/images/' . $name;
                DB::table('image')->insert(['url' => $url]);
                return redirect('image');
            }
        }*/

        /**
         * 多图上传 注意
         * 1 表单处  <input type="file" name="img[]" multiple="multiple"    />
         * 2 遍历
         */

        /*$imgs = $request->file('img');
        $urls=[];
        foreach($imgs as $img){
            if($img->isValid()){
                $ext = $img->getClientOriginalExtension(); //获取上传文件名的后缀名
                $path = 'upload/images/';
                $name = "origin_".time().rand(10,100).'.'.$ext;
                if($img->move($path,$name)){
                    $url = '/upload/images/'.$name;
                    $urls[]=['url'=>$url];
                }
            }
        }

        DB::table('image')->insert($urls);
        return redirect('image');*/

//        上传方式
        $imgs = $request->file('img');
        $urls=[];
        foreach($imgs as $img){
            if($img->isValid()){
                $ext = $img->getClientOriginalExtension(); //获取上传文件名的后缀名
                $path = 'images/';
                $name = "origin_".time().rand(10,100).'.'.$ext;
                $path .=$name;
                //获取文件上传到服务器之后的临时路径  tmp_path
                $tmp_path = $img->getRealPath();
                //利用文件存储执行上传 put($path,file_get_contents($tmp_path)
                Storage::disk('myupload')->put($path,file_get_contents($tmp_path));             //把上传之后的url加入数组
                $urls[]= ['url'=>"/upload/".$path];
            }
        }
        DB::table('image')->insert($urls);
//        return redirect('image');

        //返回ajax
        //多图
        $data =[
            'status'=>200,
            'msg'=>'成功',
            'data'=>$urls
        ];
        echo json_encode($data);

        //ajax单图
        /*$img = $request->file('img');
        if($img->isValid()) {
            $ext = $img->getClientOriginalExtension(); //获取上传文件名的后缀名
            $path = public_path('upload/images/');
            $name = "origin_" . time() . rand(10, 100) . '.' . $ext;
            if ($img->move($path, $name)) {
                $url = '/upload/images/' . $name;
                DB::table('image')->insert(['url' => $url]);
                echo $url;
            }
        }*/


    }


    /**
     * Display the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function show($id)
    {
        //
    }

    /**
     * Show the form for editing the specified resource.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function edit($id)
    {
        //
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
    }

    /**
     * Remove the specified resource from storage.
     *
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function destroy($id)
    {
        //
    }
}
